package com.ruoyi.consumer.orders.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.business.shop.api.domain.ServiceDetails;
import com.ruoyi.business.shop.api.domain.ServiceType;
import com.ruoyi.business.shop.api.domain.Shop;
import com.ruoyi.system.api.domain.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 订单对象 orders
 * 
 * @author fkk
 * @date 2025-02-21
 */
public class Orders extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单号 */
    private Long id;

    /** 核销码 */
    @Excel(name = "核销码")
    private String verificationCode;

    /** 核销码图片 */
    @Excel(name = "核销码图片")
    private String verificationImg;

    /** 店铺 */
    @Excel(name = "店铺")
    private Integer mid;

    /** 用户 */
    @Excel(name = "用户")
    private Integer uid;

    /** 服务详情 */
    @Excel(name = "服务详情")
    private Integer serviceId;

    /** 服务类别 */
    @Excel(name = "服务类别")
    private Integer serviceTypeId;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 预约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reservationTime;

    /** 订单车辆 */
    @Excel(name = "订单车辆")
    private Integer carId;

    /** 平台优惠 */
    @Excel(name = "平台优惠")
    private Integer platformCouponId;

    /** 商家优惠 */
    @Excel(name = "商家优惠")
    private Integer shopCouponId;

    /** 实付金额 */
    @Excel(name = "实付金额")
    private Double price;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private Integer payType;

    /** 使用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "使用时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date useTime;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private Integer status;

    /** 删除 */
    private Integer del;

    // 非表中字段，实体类属性
    /** 店铺信息 */
    @Excel(name = "店铺信息")
    private Shop shop;

    /** 用户信息 */
    @Excel(name = "用户信息")
    private SysUser sysUser;

    /** 服务详情信息 */
    @Excel(name = "服务详情信息")
    private ServiceDetails serviceDetails;

    /** 服务类别信息 */
    @Excel(name = "服务类别信息")
    private ServiceType serviceType;

    /** 订单车辆信息 */
//    @Excel(name = "订单车辆信息")
//    private ServiceDetails serviceDetails;
    /** 平台优惠信息 */
//    @Excel(name = "平台优惠信息")
//    private ServiceDetails serviceDetails;
    /** 商家优惠信息 */
//    @Excel(name = "商家优惠信息")
//    private ServiceDetails serviceDetails;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Shop getShop() {
        return shop;
    }

    public void setShop(Shop shop) {
        this.shop = shop;
    }

    public SysUser getSysUser() {
        return sysUser;
    }

    public void setSysUser(SysUser sysUser) {
        this.sysUser = sysUser;
    }

    public ServiceDetails getServiceDetails() {
        return serviceDetails;
    }

    public void setServiceDetails(ServiceDetails serviceDetails) {
        this.serviceDetails = serviceDetails;
    }

    public ServiceType getServiceType() {
        return serviceType;
    }

    public void setServiceType(ServiceType serviceType) {
        this.serviceType = serviceType;
    }

    public Long getId()
    {
        return id;
    }
    public void setVerificationCode(String verificationCode) 
    {
        this.verificationCode = verificationCode;
    }

    public String getVerificationCode() 
    {
        return verificationCode;
    }
    public void setVerificationImg(String verificationImg) 
    {
        this.verificationImg = verificationImg;
    }

    public String getVerificationImg() 
    {
        return verificationImg;
    }
    public void setMid(Integer mid) 
    {
        this.mid = mid;
    }

    public Integer getMid() 
    {
        return mid;
    }
    public void setUid(Integer uid) 
    {
        this.uid = uid;
    }

    public Integer getUid() 
    {
        return uid;
    }
    public void setServiceId(Integer serviceId) 
    {
        this.serviceId = serviceId;
    }

    public Integer getServiceId() 
    {
        return serviceId;
    }
    public void setServiceTypeId(Integer serviceTypeId) 
    {
        this.serviceTypeId = serviceTypeId;
    }

    public Integer getServiceTypeId() 
    {
        return serviceTypeId;
    }
    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }
    public void setReservationTime(Date reservationTime) 
    {
        this.reservationTime = reservationTime;
    }

    public Date getReservationTime() 
    {
        return reservationTime;
    }
    public void setCarId(Integer carId) 
    {
        this.carId = carId;
    }

    public Integer getCarId() 
    {
        return carId;
    }
    public void setPlatformCouponId(Integer platformCouponId) 
    {
        this.platformCouponId = platformCouponId;
    }

    public Integer getPlatformCouponId() 
    {
        return platformCouponId;
    }
    public void setShopCouponId(Integer shopCouponId) 
    {
        this.shopCouponId = shopCouponId;
    }

    public Integer getShopCouponId() 
    {
        return shopCouponId;
    }
    public void setPrice(Double price) 
    {
        this.price = price;
    }

    public Double getPrice() 
    {
        return price;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setPayType(Integer payType) 
    {
        this.payType = payType;
    }

    public Integer getPayType() 
    {
        return payType;
    }
    public void setUseTime(Date useTime) 
    {
        this.useTime = useTime;
    }

    public Date getUseTime() 
    {
        return useTime;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setDel(Integer del) 
    {
        this.del = del;
    }

    public Integer getDel() 
    {
        return del;
    }

    @Override
    public String toString() {
        return "Orders{" +
                "id=" + id +
                ", verificationCode='" + verificationCode + '\'' +
                ", verificationImg='" + verificationImg + '\'' +
                ", mid=" + mid +
                ", uid=" + uid +
                ", serviceId=" + serviceId +
                ", serviceTypeId=" + serviceTypeId +
                ", orderTime=" + orderTime +
                ", reservationTime=" + reservationTime +
                ", carId=" + carId +
                ", platformCouponId=" + platformCouponId +
                ", shopCouponId=" + shopCouponId +
                ", price=" + price +
                ", payTime=" + payTime +
                ", payType=" + payType +
                ", useTime=" + useTime +
                ", status=" + status +
                ", del=" + del +
                ", shop=" + shop +
                ", sysUser=" + sysUser +
                ", serviceDetails=" + serviceDetails +
                ", serviceType=" + serviceType +
                '}';
    }
}
